This invention relates to a system for coupling a plurality of peripheral devices of different types to a central processing unit (CPU), and more particularly to a system which permits providing an indeterminate number of peripheral devices with two-way communication directly between the CPU and each peripheral device.
Data processing systems organized around a CPU (computer or calculator) generally include a carefully selected set of peripheral devices, such as typewriters, magnetic tape units, card readers, digital plotters, and the like. There are two approaches for providing two-way communications with the devices.
The first is for the CPU to decode an n-bit word to determine which of several devices is to be serviced, and to then activate the device through an interface unit having a connector assigned the n-bit code. The decoding and activating logic for all devices is constructed as an integral part of the interface unit. Consequently, the number and types of peripheral devices which can be connected is predetermined.
The second approach is to provide a predetermined number of controllers, each taking the place of an interface unit in the first approach, and connecting one or more devices to the controllers. This "corporate feed" arrangement thus provides for a larger number of peripheral devices, but the number of devices which can be serviced by a controller is again limited by its design. Consequently, the total number of devices that can be included is predetermined by the controller interface just as the number of devices is limited in the first approach. This approach does increase the total number of devices by a factor N, where N is the total number of controllers that may be addressed by a code using a predetermined number of bits, but there is the disadvantage of added expense in providing controllers. The expense is significant when considered from the point of view of the small user who, in the extreme, requires less than N devices, or requires N+1 devices and must therefore add another controller for the one added device. Worse yet, the CPU must have the capability of addressing the controller first in order to access a device.